<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        /*
            Promise是什么？
                1.抽象表达
                    (1). promise是一门新的技术(ES6提出)
                    (2). Promise是js中异步编程解决方案(旧方案就是纯回调)
                2.具体表达
                    (1). 从语法上来说: promise是一个内置构造函数
                    (2). 从功能上来说: promise的实例对象可以用来封装一个异步操作, 并可以获取其成功/失败的值
        */

        /*
            1.promise不是回调，是一个内置的构造函数，是程序员自己new调用的
            2.new Promise的时候，要传入一个回调函数，它是同步的回调，会立即在主线程上执行。这个回调函数官方命名为executor
            3.每一个promise实例对象都有三种状态，分别是pending、fulfilled、rejected。分别代表初始化、成功、失败。
            4.每一个promise实例在被new出来的那一刻，状态都是pending也就是初始化。
            5.executor函数会接收到两个参数，它们都是函数，分别用形参：resolve,reject接收
                - 调用resolve，会让promise实例状态变为：成功(fulfilled)，同时可以指定成功的value
                - 调用reject，会让promise实例状态变为：失败(rejected)，同时可以指定失败的reason
        */ 
        const p = new Promise((resolve,reject)=>{
            let time = new Date().getTime()
            if(time%2==0){
                resolve('success')
            }
            else{
                reject('fail')
            }
        })
    </script>
</body>
</html>l